dd.exbutton({
    init:function()
    {
        // Define Control
        dd.control("button", function(label)
        {
            // this.parent is the parent element
            var a = dd(this.parent).addElement("a", label, {"href":"#"});
            dd(a).addClass("control-button");
            dd(a).event({
                click:function()
                {
                    dd(this.control).trigger("click");
                }
            }, {control:this});
            this.property("label", {
                get:function()
                {
                    return dd(this.a).text;
                },
                set:function(v)
                {
                    dd(this.a).text = v;
                    return v;
                }
            }, {a:a});
            this.property("disabled", {
                get:function()
                {
                    return dd(this.a).hasClass("control-button-disabled");
                },
                set:function(v)
                {
                    if(v)
                    {
                        dd(this.a).removeClass("control-button")
                                  .removeClass("control-button-disabled")
                                  .addClass("control-button-disabled");
                    }
                    else
                    {
                        dd(this.a).removeClass("control-button")
                                  .removeClass("control-button-disabled")
                                  .addClass("control-button");
                    }
                    return v;
                }
            }, {a:a});
        });
    }
});